package einlesenUndDatenverwaltung;

/**
 * Klasse zur Erzeugung von Studentenobjekten mit Gettern und Settern fuer die
 * einzelnen Attribute.
 * 
 * @author (Daniel Uhlig)
 * @version (17.1.2014)
 */
public class Student {
	// Attribute des Studenten
	private int matrikelnummer;
	private String name;
	private String vorname;
	private String universitaet;
	private String wohnort;
	private boolean istZeitminimierer;
	private int punkte;

	/**
	 * Konstruktor zur Erzeugung von Studentenobjekten.
	 */
	public Student() {

	}

	/**
	 * Methode zur Rueckgabe des Attributs Matrikelnummer.
	 * 
	 * @return (int)-Attribut Matrikelnummer
	 */
	public int getMatrikelnummer() {
		return matrikelnummer;
	}

	/**
	 * Methode zum Setzen des Attributs Matrikelnummer. Wird in der Methode zu
	 * Integer gecastet.
	 * 
	 * @param matrikelnummer
	 *            (String)- als String
	 */
	public void setMatrikelnummer(String in_matrikelnummer) {
		matrikelnummer = Integer.parseInt(in_matrikelnummer);

	}

	/**
	 * Methode zur Rueckgabe des Attributs Name.
	 * 
	 * @return (String)- Attribut Name
	 */
	public String getName() {
		return name;
	}

	/**
	 * Methode zum Setzen des Attributs Name.
	 * 
	 * @param name
	 *            (String)- der zu setzende Name.
	 */
	public void setName(String name) {
		this.name = name;
	}

	/**
	 * Methode zur Rueckgabe des Attributs Vorname.
	 * 
	 * @return (String)- Attribut Vorname
	 */
	public String getVorname() {
		return vorname;
	}

	/**
	 * Methode zum Setzen des Attributs Vorname.
	 * 
	 * @param vorname
	 *            (String)- der zu setzende Vorname
	 */
	public void setVorname(String vorname) {
		this.vorname = vorname;
	}

	/**
	 * Methode zur Rueckgabe des Attributs Universitaet.
	 * 
	 * @return (String)- Attribut Universitaet
	 */
	public String getUniversitaet() {
		return universitaet;
	}

	/**
	 * Methode zum Setzen des Attributs Universitaet.
	 * 
	 * @param universitaet
	 *            (String) - die zu setzende Universitaet
	 */
	public void setUniversitaet(String universitaet) {
		this.universitaet = universitaet;
	}

	/**
	 * Methode zur Rueckgabe des Attributs Wohnort.
	 * 
	 * @return (String) - Attribut Wohnort
	 */
	public String getWohnort() {
		return wohnort;
	}

	/**
	 * Methode zum Setzen des Attributs Wohnort.
	 * 
	 * @param wohnort
	 *            (String) - der zu setzende Wohnort
	 */
	public void setWohnort(String wohnort) {
		this.wohnort = wohnort;
	}

	/**
	 * Methode zur Rueckgabe des Attributs istZeitminimierer.
	 * 
	 * @return (boolean) - Attribut istZeitminimierer
	 */
	public boolean getIstZeitminimierer() {
		return istZeitminimierer;
	}

	/**
	 * Methode zum Setzen des Attributs istZeitminimierer. In der Methode, durch
	 * if Abfrage Ausgabe des gewuenschten Datentyp boolean.
	 * 
	 * @param istZeitminimierer
	 *            (String)- das zu setzende Attribut ist Zeitminimierer
	 */
	public void setIstZeitminimierer(String in_istZeitminimierer) {
		if ((in_istZeitminimierer.equals("ja"))
				|| (in_istZeitminimierer.equals("ja "))) {
			this.istZeitminimierer = true;
		} else {
			this.istZeitminimierer = false;
		}
	}

	/**
	 * Methode zur Ausgabe der Eigenschaften des Studenten im Rahmen der Ausgabe der Ergebnisse der Zufriedenheitsmessung
	 * Die komplette Ausgabe wird im Zusammenspiel mit der toString Methode der Klasse ZufriedenheitsMesser erzeugt
	 * 
	 * @Author: Hendrik
	 * @return (String) - Zeichenkette mit Eigenschaften des Studenten als Ergaenzung
	 * zu den Ergebnissen der Zufriedenheitsmessung aus der entsprechenden toString Methode der Klasse ZufriedenheitsMesser
	 */
	public String toString() {
		
		String zm;
		
        if (this.istZeitminimierer == true) {
            zm = "Ja";
        }
        else{
            zm = "Nein";
        }
		
		return "\n Name: " + name
				+ "\n Vorname: " + vorname
				+ "\n Matrikelnr.: " + matrikelnummer
				+ "\n Zeitminimierer: " + zm;
		
	}


	/**
	 * Methode zur Rueckgabe des Attributs Punkte.
	 * 
	 * @return punkte (int) 
	 */
	public int getPunkte() {
		return punkte;
	}

	/**
	 * Methode zum Setzen des Attributs Punkte.
	 * 
	 * @param punkte (int) zu setzende Punkte
	 */
	public void setPunkte(int punkte) {
		this.punkte = punkte;
	}

}
